home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / Connections.p < prev    next >
Text File  |  1995-09-14  |  11KB  |  326 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 5:40:03 PM }
  2. {}
  3. {     File:        Connections.p}
  4. { }
  5. {     Contains:    Communications Toolbox Connection Manager Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit Connections;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __CONNECTIONS__}
  26. {$SETC __CONNECTIONS__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Quickdraw, Controls, Windows, Dialogs, AppleTalk, CTBUtilities;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35.     const
  36. {    current Connection Manager version    }
  37.         curCMVersion = 2;
  38. {    current Connection Manager Environment Record version     }
  39.         curConnEnvRecVers = 0;
  40. { CMErr }
  41.         cmGenericError = -1;
  42.         cmNoErr = 0;
  43.         cmRejected = 1;
  44.         cmFailed = 2;
  45.         cmTimeOut = 3;
  46.         cmNotOpen = 4;
  47.         cmNotClosed = 5;
  48.         cmNoRequestPending = 6;
  49.         cmNotSupported = 7;
  50.         cmNoTools = 8;
  51.         cmUserCancel = 9;
  52.         cmUnknownError = 11;
  53.  
  54.  
  55.     type
  56.         CMErr = OSErr;
  57.  
  58.  
  59.     const
  60.         cmData = $1;
  61.         cmCntl = $2;
  62.         cmAttn = $4;
  63.         cmDataNoTimeout = $10;
  64.         cmCntlNoTimeout = $20;
  65.         cmAttnNoTimeout = $40;
  66.         cmDataClean = $100;
  67.         cmCntlClean = $200;
  68.         cmAttnClean = $400;
  69. {        Only for CMRecFlags (not CMChannel) in the rest of this enum    }
  70.         cmNoMenus = $10000;
  71.         cmQuiet = $20000;
  72.         cmConfigChanged = $40000;
  73.  
  74. { CMRecFlags and CMChannel        }
  75. {        Low word of CMRecFlags is same as CMChannel    }
  76.  
  77.     type
  78.         CMRecFlags = LONGINT;
  79.  
  80.         CMChannel = INTEGER;
  81.  
  82.  
  83.     const
  84.         cmStatusOpening = $1;
  85.         cmStatusOpen = $2;
  86.         cmStatusClosing = $4;
  87.         cmStatusDataAvail = $8;
  88.         cmStatusCntlAvail = $10;
  89.         cmStatusAttnAvail = $20;
  90.         cmStatusDRPend = $40;                    { data read pending    }
  91.         cmStatusDWPend = $80;                    { data write pending    }
  92.         cmStatusCRPend = $100;                    { cntl read pending    }
  93.         cmStatusCWPend = $200;                    { cntl write pending    }
  94.         cmStatusARPend = $400;                { attn read pending    }
  95.         cmStatusAWPend = $800;                { attn write pending    }
  96.         cmStatusBreakPend = $1000;
  97.         cmStatusListenPend = $2000;
  98.         cmStatusIncomingCallPresent = $4000;
  99.         cmStatusReserved0 = $8000;
  100.  
  101.  
  102.     type
  103.         CMStatFlags = LONGINT;
  104.  
  105.  
  106.     const
  107.         cmDataIn = 0;
  108.         cmDataOut = 1;
  109.         cmCntlIn = 2;
  110.         cmCntlOut = 3;
  111.         cmAttnIn = 4;
  112.         cmAttnOut = 5;
  113.         cmRsrvIn = 6;
  114.         cmRsrvOut = 7;
  115.  
  116.  
  117.     type
  118.         CMBufFields = INTEGER;
  119.  
  120.         CMBuffers = array[0..7] of Ptr;
  121.  
  122.         CMBufferSizes = array[0..7] of LONGINT;
  123.  
  124.  
  125.     const
  126.         cmSearchSevenBit = $1;
  127.  
  128.  
  129.     type
  130.         CMSearchFlags = INTEGER;
  131.  
  132.  
  133.     const
  134.         cmFlagsEOM = $1;
  135.  
  136.  
  137.     type
  138.         CMFlags = INTEGER;
  139.  
  140.         ConnEnvironRec = record
  141.                 version: INTEGER;
  142.                 baudRate: LONGINT;
  143.                 dataBits: INTEGER;
  144.                 channels: CMChannel;
  145.                 swFlowControl: BOOLEAN;
  146.                 hwFlowControl: BOOLEAN;
  147.                 flags: CMFlags;
  148.             end;
  149.  
  150.         ConnEnvironRecPtr = ^ConnEnvironRec;
  151.  
  152.         ConnPtr = ^ConnRecord;
  153.         ConnHandle = ^ConnPtr;
  154.  
  155.         ConnectionToolDefProcPtr = ProcPtr;  { FUNCTION ConnectionToolDef(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  156.         ConnectionSearchCallBackProcPtr = ProcPtr;  { PROCEDURE ConnectionSearchCallBack(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT); }
  157.         ConnectionCompletionProcPtr = ProcPtr;  { PROCEDURE ConnectionCompletion(hConn: ConnHandle); }
  158.         ConnectionChooseIdleProcPtr = ProcPtr;  { PROCEDURE ConnectionChooseIdle; }
  159.         ConnectionToolDefUPP = UniversalProcPtr;
  160.         ConnectionSearchCallBackUPP = UniversalProcPtr;
  161.         ConnectionCompletionUPP = UniversalProcPtr;
  162.         ConnectionChooseIdleUPP = UniversalProcPtr;
  163.  
  164.         ConnRecord = record
  165.                 procID: INTEGER;
  166.                 flags: CMRecFlags;
  167.                 errCode: CMErr;
  168.                 refCon: LONGINT;
  169.                 userData: LONGINT;
  170.                 defProc: ConnectionToolDefUPP;
  171.                 config: Ptr;
  172.                 oldConfig: Ptr;
  173.                 asyncEOM: LONGINT;
  174.                 reserved1: LONGINT;
  175.                 reserved2: LONGINT;
  176.                 cmPrivate: Ptr;
  177.                 bufferArray: CMBuffers;
  178.                 bufSizes: CMBufferSizes;
  179.                 mluField: LONGINT;
  180.                 asyncCount: CMBufferSizes;
  181.             end;
  182.  
  183.  
  184.     const
  185. { CMIOPB constants and structure }
  186.         cmIOPBQType = 10;
  187.         cmIOPBversion = 0;
  188.  
  189.  
  190.     type
  191.         CMIOPB = record
  192.                 qLink: QElemPtr;
  193.                 qType: INTEGER;                                { cmIOPBQType }
  194.                 hConn: ConnHandle;
  195.                 theBuffer: Ptr;
  196.                 count: LONGINT;
  197.                 flags: CMFlags;
  198.                 userCompletion: ConnectionCompletionUPP;
  199.                 timeout: LONGINT;
  200.                 errCode: CMErr;
  201.                 channel: CMChannel;
  202.                 asyncEOM: LONGINT;
  203.                 reserved1: LONGINT;
  204.                 reserved2: INTEGER;
  205.                 version: INTEGER;                                { cmIOPBversion }
  206.                 refCon: LONGINT;                                { for application }
  207.                 toolData1: LONGINT;                                { for tool }
  208.                 toolData2: LONGINT;                                { for tool }
  209.             end;
  210.  
  211.         CMIOPBPtr = ^CMIOPB;
  212.  
  213.     const
  214.         uppConnectionToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  215.         uppConnectionSearchCallBackProcInfo = $00000FC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param); }
  216.         uppConnectionCompletionProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  217.         uppConnectionChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  218.  
  219.     function CallConnectionToolDefProc (hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  220.     {$IFC NOT GENERATINGCFM}
  221.     inline
  222.         $205F, $4E90;
  223.     {$ENDC}
  224.  
  225.     procedure CallConnectionSearchCallBackProc (hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  226.     {$IFC NOT GENERATINGCFM}
  227.     inline
  228.         $205F, $4E90;
  229.     {$ENDC}
  230.  
  231.     procedure CallConnectionCompletionProc (hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  232.     {$IFC NOT GENERATINGCFM}
  233.     inline
  234.         $205F, $4E90;
  235.     {$ENDC}
  236.  
  237.     procedure CallConnectionChooseIdleProc (userRoutine: ConnectionChooseIdleUPP);
  238.     {$IFC NOT GENERATINGCFM}
  239.     inline
  240.         $205F, $4E90;
  241.     {$ENDC}
  242.  
  243.     function NewConnectionToolDefProc (userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  244.     {$IFC NOT GENERATINGCFM }
  245.     inline
  246.         $2E9F;
  247.     {$ENDC}
  248.  
  249.     function NewConnectionSearchCallBackProc (userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  250.     {$IFC NOT GENERATINGCFM }
  251.     inline
  252.         $2E9F;
  253.     {$ENDC}
  254.  
  255.     function NewConnectionCompletionProc (userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  256.     {$IFC NOT GENERATINGCFM }
  257.     inline
  258.         $2E9F;
  259.     {$ENDC}
  260.  
  261.     function NewConnectionChooseIdleProc (userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  262.     {$IFC NOT GENERATINGCFM }
  263.     inline
  264.         $2E9F;
  265.     {$ENDC}
  266.  
  267.     function InitCM: CMErr;
  268.     function CMGetVersion (hConn: ConnHandle): Handle;
  269.     function CMGetCMVersion: INTEGER;
  270.     function CMNew (procID: INTEGER; flags: CMRecFlags; var desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  271.     procedure CMDispose (hConn: ConnHandle);
  272.     function CMListen (hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  273.     function CMAccept (hConn: ConnHandle; accept: BOOLEAN): CMErr;
  274.     function CMOpen (hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  275.     function CMClose (hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  276.     function CMAbort (hConn: ConnHandle): CMErr;
  277.     function CMStatus (hConn: ConnHandle; var sizes: CMBufferSizes; var flags: CMStatFlags): CMErr;
  278.     procedure CMIdle (hConn: ConnHandle);
  279.     procedure CMReset (hConn: ConnHandle);
  280.     procedure CMBreak (hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  281.     function CMRead (hConn: ConnHandle; theBuffer: univ Ptr; var toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; var flags: CMFlags): CMErr;
  282.     function CMWrite (hConn: ConnHandle; theBuffer: univ Ptr; var toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  283.     function CMIOKill (hConn: ConnHandle; which: INTEGER): CMErr;
  284.     procedure CMActivate (hConn: ConnHandle; activate: BOOLEAN);
  285.     procedure CMResume (hConn: ConnHandle; resume: BOOLEAN);
  286.     function CMMenu (hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  287.     function CMValidate (hConn: ConnHandle): BOOLEAN;
  288.     procedure CMDefault (var theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  289.     function CMSetupPreflight (procID: INTEGER; var magicCookie: LONGINT): Handle;
  290.     function CMSetupFilter (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var theEvent: EventRecord; var theItem: INTEGER; var magicCookie: LONGINT): BOOLEAN;
  291.     procedure CMSetupSetup (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var magicCookie: LONGINT);
  292.     procedure CMSetupItem (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; var theItem: INTEGER; var magicCookie: LONGINT);
  293.     procedure CMSetupXCleanup (procID: INTEGER; theConfig: univ Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; var magicCookie: LONGINT);
  294.     procedure CMSetupPostflight (procID: INTEGER);
  295.     function CMGetConfig (hConn: ConnHandle): Ptr;
  296.     function CMSetConfig (hConn: ConnHandle; thePtr: univ Ptr): INTEGER;
  297.     function CMIntlToEnglish (hConn: ConnHandle; inputPtr: univ Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  298.     function CMEnglishToIntl (hConn: ConnHandle; inputPtr: univ Ptr; var outputPtr: Ptr; language: INTEGER): OSErr;
  299.     function CMAddSearch (hConn: ConnHandle; theString: ConstStr255Param; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  300.     procedure CMRemoveSearch (hConn: ConnHandle; refnum: LONGINT);
  301.     procedure CMClearSearch (hConn: ConnHandle);
  302.     function CMGetConnEnvirons (hConn: ConnHandle; var theEnvirons: ConnEnvironRec): CMErr;
  303.     function CMChoose (var hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  304.     procedure CMEvent (hConn: ConnHandle; {CONST}
  305.                                     var theEvent: EventRecord);
  306.     procedure CMGetToolName (procID: INTEGER; var name: Str255);
  307.     function CMGetProcID (name: ConstStr255Param): INTEGER;
  308.     procedure CMSetRefCon (hConn: ConnHandle; refCon: LONGINT);
  309.     function CMGetRefCon (hConn: ConnHandle): LONGINT;
  310.     function CMGetUserData (hConn: ConnHandle): LONGINT;
  311.     procedure CMSetUserData (hConn: ConnHandle; userData: LONGINT);
  312.     procedure CMGetErrorString (hConn: ConnHandle; id: INTEGER; var errMsg: Str255);
  313.     function CMNewIOPB (hConn: ConnHandle; var theIOPB: CMIOPBPtr): CMErr;
  314.     function CMDisposeIOPB (hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  315.     function CMPBRead (hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  316.     function CMPBWrite (hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  317.     function CMPBIOKill (hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  318.  
  319. { $ALIGN RESET}
  320. { $POP}
  321.  
  322. {$ENDC}
  323.  {__CONNECTIONS__}
  324.  
  325. implementation
  326. end.